package com.ydlclass.message;


public interface MessageFormatConst {

    /**
     * 魔数
     */
    byte[] MAGIC = "ydl".getBytes();

    /**
     * 版本
     */
    byte VERSION = 1;

    /**
     * 请求 Id
     */
    Long REQUEST_ID = 0L;

    String PING_DATA = "ping";
    String PONG_DATA = "pong";

    /**
     * 魔法数字长度
     */
    int MAGIC_LENGTH = 3;

    /**
     * 版本长度
     */
    int VERSION_LENGTH = 1;

    /**
     * 总长度字段的长度
     */
    int FULL_LENGTH_LENGTH = 4;

    /**
     * 头部长度
     */

    int HEAD_LENGTH = 2;
    /**
     * 消息类型长度
     */
    int MESSAGE_TYPE_LENGTH = 1;

    /**
     * 序列化类型长度
     */
    int SERIALIZE_TYPE_LENGTH = 1;

    /**
     * 压缩器类型长度
     */
    int COMPRESS_TYPE_LENGTH = 1;

    /**
     * 请求id 长度
     */
    int REQUEST_ID_LENGTH = 8;

    /**
     * 请求头总长度
     */
    int HEADER_LENGTH = MAGIC_LENGTH + VERSION_LENGTH + FULL_LENGTH_LENGTH + HEAD_LENGTH + MESSAGE_TYPE_LENGTH + SERIALIZE_TYPE_LENGTH + COMPRESS_TYPE_LENGTH + REQUEST_ID_LENGTH;

    /**
     * 协议最大长度
     */
    int MAX_FRAME_LENGTH = 8 * 1024 * 1024;

}
